// createStore 用于创建仓库实例的函数
import { createStore } from 'vuex'

// 创建仓库实例
const store = createStore({
  // 放数据的结构
  state: {
    username: '游客'
  },
  // 修改数据的结构
  mutations: {
    setUserName (state, payload) {
      state.username = payload
    }
  },
  // 异步操作的结构(请求相关的放这里)
  actions: {
    // 模拟请求1s后拿到数据，然后把用户名修改
    setUserNameSync (store) {
      // 模拟异步操作
      setTimeout(() => {
        const res = { name: '请求回来的格伦' }
        // 异步请求完成后，调用 commit 实现修改仓库数据
        store.commit('setUserName', res.name)
      }, 1000)
    }
  },
  // 模块
  modules: {
  },
  // VueX 计算属性
  getters: {
  }
})

// 导出仓库实例
export default store
